package com.ttx.pattern.example.strategy.strategyenum;

/**
 * 策略枚举
 * 
 * 很优秀，但一般用于不经常变化的角色，因为受限于枚举类型 (拓展性非常差 T_T )
 * 
 * @author TimFruit
 * @date 2019/5/21 8:12
 */

public enum  Calculator {
    
    ADD {
        @Override int exec(int num1, int num2) {
            return num1+num2;
        }
    },
    SUB {
        @Override int exec(int num1, int num2) {
            return num1-num2;
        }
    },
    MULTIPLY {
        @Override int exec(int num1, int num2) {
            return num1 * num2;
        }
    };

    
    
    
    
    
    abstract int exec(int num1, int num2);
    
}
